package com.example.service.impl;

import cn.hutool.crypto.SecureUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.common.ResultCode;
import com.example.dao.*;
import com.example.entity.Jingdianxinxi;
import com.example.exception.CustomException;
import com.example.service.JingdianxinxiService;
import com.example.vo.JingdianxinxiVo;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import java.util.Map;

@Service("jingdianxinxiService")
public class JingdianxinxiServiceImpl extends ServiceImpl<JingdianxinxiDao, Jingdianxinxi> implements JingdianxinxiService {

    @Resource
    private JingdianxinxiDao jingdianxinxiDao;

    public Jingdianxinxi add(Jingdianxinxi jingdianxinxi) {
		
	   //youquchong1
        jingdianxinxi.setAddtime(new Date());
        jingdianxinxiDao.insert(jingdianxinxi);
        return jingdianxinxi;
    }
	
	@Override
    public List<Map<String,Object>> jingdianxinxi_tj_xingji() {
    List<Map<String,Object>> returnMap = jingdianxinxiDao.jingdianxinxi_tj_xingji();
    return returnMap;
    }
    
	
    public void delete(Long id) {
        jingdianxinxiDao.deleteById(id);
    }
	

    public void update(Jingdianxinxi jingdianxinxi) {
        //youquchong2
        jingdianxinxiDao.updateById(jingdianxinxi);
    }
	
	@Override
    public List<Map<String, Object>> daochuexcel() {
        return jingdianxinxiDao.daochuexcel();
    }

    @Override
    public Jingdianxinxi findById(Integer id) {
        return jingdianxinxiDao.selectById(id);
    }

    public JingdianxinxiVo findPage(JingdianxinxiVo jingdianxinxiVo) {
        LambdaQueryWrapper<Jingdianxinxi> wrapper = Wrappers.lambdaQuery();
		wrapper.like(ObjectUtils.isNotEmpty(jingdianxinxiVo.getJingdianbianhao()), Jingdianxinxi::getJingdianbianhao,jingdianxinxiVo.getJingdianbianhao());
        wrapper.like(ObjectUtils.isNotEmpty(jingdianxinxiVo.getJingdianmingcheng()), Jingdianxinxi::getJingdianmingcheng,jingdianxinxiVo.getJingdianmingcheng());
        wrapper.like(ObjectUtils.isNotEmpty(jingdianxinxiVo.getLianxidianhua()), Jingdianxinxi::getLianxidianhua,jingdianxinxiVo.getLianxidianhua());
        wrapper.like(ObjectUtils.isNotEmpty(jingdianxinxiVo.getPiaojia()), Jingdianxinxi::getPiaojia,jingdianxinxiVo.getPiaojia());
        wrapper.like(ObjectUtils.isNotEmpty(jingdianxinxiVo.getDizhi()), Jingdianxinxi::getDizhi,jingdianxinxiVo.getDizhi());
        wrapper.like(ObjectUtils.isNotEmpty(jingdianxinxiVo.getXingji()), Jingdianxinxi::getXingji,jingdianxinxiVo.getXingji());
        wrapper.like(ObjectUtils.isNotEmpty(jingdianxinxiVo.getZhaopian()), Jingdianxinxi::getZhaopian,jingdianxinxiVo.getZhaopian());
        wrapper.like(ObjectUtils.isNotEmpty(jingdianxinxiVo.getJianjie()), Jingdianxinxi::getJianjie,jingdianxinxiVo.getJianjie());
        wrapper.like(ObjectUtils.isNotEmpty(jingdianxinxiVo.getId()), Jingdianxinxi::getId,jingdianxinxiVo.getId());

        Page<Jingdianxinxi> page = new Page<>(jingdianxinxiVo.getCurrent(),jingdianxinxiVo.getCurrentNum());
        jingdianxinxiDao.selectPage(page,wrapper);
        List<Jingdianxinxi> jingdianxinxis = page.getRecords();
        jingdianxinxiVo.setList(jingdianxinxis);
        jingdianxinxiVo.setPages(page.getPages());
        jingdianxinxiVo.setTotal(page.getTotal());
        jingdianxinxiVo.setCurrent(page.getCurrent());
        jingdianxinxiVo.setCurrentNum(page.getSize());
        return jingdianxinxiVo;
    }

    @Override
    public void deleteList(List<Jingdianxinxi> list) {
        List<Integer> ids =  list.stream().map(Jingdianxinxi::getId).collect(Collectors.toList());
        jingdianxinxiDao.deleteBatchIds(ids);
    }
	
	
	
	
	
	//youxxianxci
}
